varying vec2 tcoord;
uniform sampler2D tex;
uniform vec2 texelsize;
void main(void) 
{
	bool set = false;
    if (texture2D(tex,tcoord).r == 1.0 && texture2D(tex,tcoord).g == 1.0
        && texture2D(tex,tcoord).b == 1.0)
    {
        
        vec4 outPx = vec4(0.0);
        outPx.rg = tcoord;
        outPx.b = 1.0;
        outPx.a = 0.0;
        set = true;
        gl_FragColor = outPx;
    }
    else if(texture2D(tex,tcoord).b == 1.0 && texture2D(tex,tcoord).a == 0.0){
        for(int xoffset = -1; xoffset <= 1; xoffset++)
	    {
		    for(int yoffset = -1; yoffset <= 1; yoffset++)
		    {   
                
            if (xoffset == -1 || (xoffset == 0 && yoffset == -1)){
                    vec2 offset = vec2(xoffset,yoffset);
			        if(texture2D(tex,tcoord+offset * texelsize).b != 0.0){                    
                        gl_FragColor = texture2D(tex,tcoord+offset * texelsize);
                        set = true;
                        break;
                    }
                    
                }
		    }
	    }
    }
    if(set == false){
        gl_FragColor = texture2D(tex,tcoord);
    }
}
